// 封装一个关注功能的 hooks
// 一般以useXXX开头
import { ref } from 'vue'
import { likeRequest } from '@/services/user'
import { showToast } from 'vant'

export const useFollow = (params: any) => {
  const loading = ref(false)

  const follow = async () => {
    try {
      loading.value = true
      await likeRequest({
        // 这个接口是关注与取消关注都会掉的接口，应该向后端java提一下，添加一个参数，传0 1
        // 不然不知道当前是关注了还是没有关注，有歧义。和后端沟通
        type: params.type,
        id: params.item.id
      })
      loading.value = false
      showToast(params.item.likeFlag === 1 ? '取消关注成功' : '关注成功')
      if (params.item.likeFlag === 1) {
        // 已关注的分支
        // eslint-disable-next-line vue/no-mutating-props
        params.item.likeFlag = 0
      } else {
        // 未关注的分支
        // eslint-disable-next-line vue/no-mutating-props
        params.item.likeFlag = 1
      }
    } catch (error) {
      loading.value = false
    }
  }

  return { loading, follow }
}
